{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Active Subspaces Example Function: Robot Arm\n",
    "\n",
    "##### Ryan Howard, CO School of Mines, <ryhoward@mines.edu>\n",
    "##### Paul Constantine, CO School of Mines, <pconstan@mines.edu>\n",
    "\n",
    "<br>\n",
    "\n",
    "In this tutorial, we'll be applying active subspaces to the function\n",
    "\n",
    "$$\n",
    "f = (u^2+v^2)^{.5},\n",
    "$$\n",
    "\n",
    "where $$\n",
    "u = \\sum_{i=1}^4L_i\\cos\\left(\\sum_{j=1}^i\\theta_j\\right),\\\\\n",
    "v = \\sum_{i=1}^4L_i\\sin\\left(\\sum_{j=1}^i\\theta_j\\right),\n",
    "$$as seen on [http://www.sfu.ca/~ssurjano/robot.html](http://www.sfu.ca/~ssurjano/robot.html). This function returns the origin-to-end distance of a robot arm with four segments, and its inputs and their distributions are described in the table below.\n",
    "\n",
    "Variable|Symbol|Distribution (U(min, max))\n",
    ":-----|:-----:|:-----\n",
    "angle of First Segment|$\\theta_1$|U(0, 2$\\pi$)\n",
    "angle of Second Segment|$\\theta_2$|U(0, 2$\\pi$)\n",
    "angle of Third Segment|$\\theta_3$|U(0, 2$\\pi$)\n",
    "angle of Fourth Segment|$\\theta_4$|U(0, 2$\\pi$)\n",
    "length of First Segment|$L_1$|U(0, 1)\n",
    "length of Second Segment|$L_2$|U(0, 1)\n",
    "length of Third Segment|$L_3$|U(0, 1)\n",
    "length of Fourth Segment|$L_4$|U(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import active_subspaces as ac\n",
    "import numpy as np\n",
    "%matplotlib inline\n",
    "\n",
    "# The robot_functions.py file contains two functions: the robot function (robot(xx))\n",
    "# and its gradient (robot_grad(xx)). Each takes an Mx8 matrix (M is the number of data\n",
    "# points) with rows being normalized inputs; robot returns a column vector of function\n",
    "# values at each row of the input and robot_grad returns a matrix whose ith row is the\n",
    "# gradient of robot at the ith row of xx with respect to the normalized inputs\n",
    "from robot_functions import *"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First we draw M samples randomly from the input space."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "M = 1000 #This is the number of data points to use\n",
    "\n",
    "#Sample the input space according to the distributions in the table above\n",
    "theta = np.random.uniform(0, 2*np.pi, (M, 4))\n",
    "L = np.random.uniform(0, 1, (M, 4))\n",
    "\n",
    "#the input matrix\n",
    "x = np.hstack((theta, L))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we normalize the inputs, linearly scaling each to the interval $[-1, 1]$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "#Upper and lower limits for inputs\n",
    "xl = np.array([0, 0, 0, 0, 0, 0, 0, 0])\n",
    "xu = np.array([2*np.pi, 2*np.pi, 2*np.pi, 2*np.pi, 1, 1, 1, 1])\n",
    "\n",
    "#XX = normalized input matrix\n",
    "XX = ac.utils.misc.BoundedNormalizer(xl, xu).normalize(x)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Compute gradients to approximate the matrix on which the active subspace is based."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "#output values (f) and gradients (df)\n",
    "f = robot(XX)\n",
    "df = robot_grad(XX)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we use our data to compute the active subspace."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "#Set up our subspace using the gradient samples\n",
    "ss = ac.subspaces.Subspaces()\n",
    "ss.compute(df=df, nboot=500)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We use plotting utilities to plot eigenvalues, subspace error, components of the eigenvectors, and 1D and 2D sufficient summary plots (plots of function values vs. active variable values)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcYAAAHLCAYAAABS/Dj3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcFfX6wPHPFxBwQUASUaxMyTSvqV1zqxQrcwn1mqlZ\nWmaiuYu7gVdw33DXMu1mLrmlaabWNQ0zW8yf5cWtRDNLUwQVUARZvr8/gBMqssiBM3N43q/XeXVm\nzsyc5+nU62G+z8x3lNYaIYQQQmRwsHUAQgghhJFIYRRCCCGykcIohBBCZCOFUQghhMhGCqMQQgiR\njRRGIYQQIhspjEIYlFKqiVJqvVLqnFIqSSn1m1JqpVLqn/dwrPuVUp8ppR4ogjhdlFJzlVLdrX1s\nIWxBCqMQBqSUGgHsBzyBkUArIAS4H/heKTWogId8Hmhr1SD/VhUYCpQqouMLUaycbB2AEOJWSql2\nwCwgTGsddtvHa5RSC4D5SqmjWuuv8ntYqwZZfMcWotgpmflGCGNRSv0AuGmtH73L587Ar8AZrbW/\nUuoM8LXW+rVs2/QB3gOqAS2BDwBNRhFbobXurZT6DVgHlAZeB9KB7cAwrfXlzOOsAJ7VWt+f7dg1\ngJNAL2Av8Fu2Y5/RWle3yr8IIWxEhlKFMBCllBfQENh2t2201jeBT4CnlFIVyChKd2yWbf1nwLTM\n9/8CJmXb7i2gCdATGA20A3be5Tg5OQ90IaMoTgQ65bKtEKYgQ6lCGEs1MorMb3lsF5W53f15bIfW\nOlYpdTpz8Wet9dlsH6cBz2mtrwEopWKAT5RS7bTWO/Jx7BSl1M+Zi6e11ofz2kcIo5MzRiGMJatf\nl5LHdqm3bX+vPssqipk+zTx2i0IeVwjTksIohLGcyfznQ3ls55f5z7O5bpW3c9kXdMZFBzFAhUIe\nVwjTksIohIForWOAb4HOd9tGKeVARi/vm8yLZDTgeNtm5fL5lV45HPs+4GJWSIU4thCmJIVRCOP5\nN/CwUmrmXT6fRUYvcnLmcjwZ9xJm99Rty2l3OVYbpVT2aw3+RUYh/G+2Y1dQSrncduzsF+Tc7dhC\nmJIURiEMRmu9BxgODFNK/Vcp9bJS6qnMf/4XGAyM1FrvytzlM+BJpdQ4pZS/Umoud/YIr5DRj+ys\nlKqVbX1V4FOlVFulVD9gGbBTa/11tmM7Ax9kHnsIGRMO6NuODfCsUqqJVf4lCGFDch+jEAallGpI\nxowyTwGVgGggAligtT6UbbsywBzgJTJmn9kGbCDjlo6HtNZnlVJlM5efBnZrrQMy72P8noxh0zeA\n68AaIERrnZzt+EGZcXgDB4AhwEGgj9Z6ZeY24UAgGRcNVdJaZ10cJITpSGEUooTKLIz7sk8MIISQ\noVQhhBDiFlIYhSi58prVRogSSYZShRBCiGzkjFEIIYTIpkTMlaqUktNiIYQQt9Ba5zilYok5Y9Ra\nm/Y1YcIEm8cgOUgORnlJDrZ/mT1+rXM/VyoxhdHMzpw5Y+sQCk1yMAbJwRjMnoPZ48+LFEYhhBAi\nGymMJtCrVy9bh1BokoMxSA7GYPYczB5/XkrE7RpKKT1hwgT8/f3x9/e3dThCCCFsJCIigoiICMLC\nwtAl/eKb0NBQ0xbFiIgIW4dQaJKDMUgOxmD2HMwcv7+/P6GhobluU2IKoxBCCJEfJWYotSTkKYQQ\nIn+UUjKUKoQQQuSHFEYTMPN4fhbJwRgkB2Mwew5mjz8vUhiFEEKIbKTHKIQQosSRHqMQQgiRT1IY\nTcAexvMlB2OQHIzB7DmYPf68SGEUQgghspEeoxBCiBJHeoxCCCFEPklhNAF7GM+XHIxBcjAGs+dg\n9vjzIoVRCCGEyEZ6jEIIIUoc6TEKIYQQ+SSF0QTsYTxfcjAGycEYzJ6D2ePPixRGIYQQIpsS02Oc\nMGEC/v7++Pv72zocIYQQNhIREUFERARhYWF37TGWmMJYEvIUQgiRP3LxjcnZw3i+5GAMkoMxmD0H\ns8efFymMQgghRDYylCqEEKLEkaFUIYQQIp+kMJqAPYznSw7GIDkYg9lzMHv8eZHCKIQQQmQjPUYh\nhBAljvQYhRBCiHySwmgC9jCeLzkYg+RgDGbPwezx50UKoxBCCJGN9BiFEEKUONJjFEIIIfJJCqMJ\n2MN4vuRgDJKDMZg9B7PHnxcpjEIIIUQ20mMUQghR4kiPUQghhMgnKYwmYA/j+ZKDMUgOxmD2HMwe\nf16kMAohhBDZSI9RCCFEiSM9RiGEECKfpDCagD2M50sOxiA5GIPZczB7/HmRwiiEEEJkIz1GIYQQ\nJU6J6DEqpf6llPqPreMQQghhbnZRGJVSM4Gpto6jqNjDeL7kYAySgzGYPQezx58XQxVGpZSLUipS\nKfVMtnXOSqn3lFKXlVLnlVKjctj1B6B/8UUqhBDCXhmmx6iUcgHWAh2BVlrrPZnrFwAtgNeB+4HV\nQKDWesNt+7cAXtda987h2NJjFEIIYWH4HqNSqjbwPfDQbevLAH2AYVrrn7XW24CZwKDij1IIIURJ\nYIjCSMYZ4W6gKZC9gtcDnIH92dZ9AzyhlMqx0tsjexjPlxyMQXIwBrPnYPb48+Jk6wAAtNbvZr2/\nrd5VBi5rrW9mW3eRjGLpnfleCCGEsBrD9BizKKXSgee01nuUUj2AaVrr+7N9/hAQBTyktT6bz2NK\nj1EIIYRFbj1GQ5wx5iIJcLltXdZyYkEO1KtXL6pVqwaAh4cH9evXx9/fH/h7WECWZVmWZVmW7XM5\n6/2ZM2fIi9HPGJsCXwOltdapmZ/7AzuAclrr9Hwe09RnjBEREZYf2awkB2OQHIzB7DmYPX4wwVWp\nufgZuAk0y7buaeD/8lsUhRBCiIIw9Blj5vI7ZBTDN8i4GGcl8KbWelMBjmnqM0YhhBDWZbYe4+0V\nbDiwhIzbOeKB0IIURSGEEKIgDDeUqrV2zDpbzFy+obV+Q2tdXmtdVWs9716OGxoaeksT1kzMGnd2\nkoMxSA7GYPYczBx/REQEoaGhuW5jxDPGIpHXvwghhBD2z9/fH39/f8LCwu66jeF6jEVBeoxCCCGy\nM/NVqUIIIUSxksJoAmYez88iORiD5GAMZs/B7PHnRQqjEEIIkU2J6TFOmDDB0nQVQghRMkVERBAR\nEUFYWNhde4wlpjCWhDyFEELkj1x8Y3L2MJ4vORiD5GAMZs/B7PHnRQqjEEIIkY0MpQohhChxZChV\nCCGEyKcSUxhlrlTbkhyMQXIwBrPnYOb4Za7UbGSuVCGEEDJXaibpMQohhMhOeoxCCCFEPklhNAEz\nj+dnkRyMQXIwBrPnYPb48yKFUQghhMhGeoxCCCFKHOkxYu7bNYQQQlhHfm7XKFGF0axP1rCHgi45\nGIPkYAxmz8HM8fv7+0thFEIIIQpCeoxCCCFKHOkxCiGEEPkkhdEEzDyen0VyMAbJwRjMnoPZ48+L\nFEYhhBAiG+kxCiGEKHGkxyiEEELkU4kpjGa+wd+scWcnORiD5GAMZs/BzPHL8xizkecxCiGEkOcx\nZpIeoxBCiOykxyiEEELkkxRGEzDzeH4WycEYJAdjMHsOZo8/L1IYhRBCiGykxyiEEKLEkR6jEEII\nkU9SGE3AHsbzJQdjkByMwew5mD3+vEhhFEIIIbKRHqMQQogSR3qMmHtKOCGEENaRnynhSlRh9Pf3\nt3UY98QeCrrkYAySgzGYPQczx+/v7y+FUQghhCgI6TEKIYQocaTHKIQQQuSTFEYTMPN4fhbJwRgk\nB2Mwew5mjz8vUhiFEEKIbKTHKIQQosSRHqPJHTx4kP3799s6DCGEKBGkMBpUUlISCxcupG3btrzw\nwgs0b96c4OBgkpKSbB3aPbGHnoTkYAySg+2ZPf68SGE0oFWrVlG/fn2CgoL4/PPPiY6OJj09nalT\np/LYY4+xatUqW4cohBB2S3qMBrNq1SpGjBjBpUuX7rpNxYoVCQ8Pp2fPnsUYmRBC2I/ceoxSGA0k\nKSmJ+vXr88svv+S57SOPPMLhw4dxcXEphsiEEMK+yMU3mGMS8WXLlhEVFZWvbU+ePMny5cuLOCLr\nMfq/+/yQHIxBcrA9M8cvk4hnY4ZJxHfs2EFaWlq+tk1PT2f16tVFHJEQQtiX/EwiLkOpBtKyZcsC\n/SVWqlQpzpw5Q5UqVYouKCGEsEMylGoSrq6uBdq+YsWKdOjQwbS3cAghhBFJYTSQdu3a4ejomK9t\nHRwcCAgIwM3NjTfffBOjnxGbuSeRRXIwBsnB9swef16kMBpIYGAgfn5++drWx8eHNm3aMHDgQA4e\nPMjs2bOLODohhCgZpMdoMKtXr2b48OG53scIUKtWLWbOnIlSiujoaMaOHcuqVato3bp1MUUqhBDm\nJT1GE+nRowfh4eE88sgjdwyrOjg44O3tjZOTEydOnODjjz8GwNvbmxEjRvDqq6/y66+/2iJsIYSw\nG1IYDahnz54cPnyYefPm0aZNGypVqkTlypUJDAzk3XffZcyYMSilWLlyJd9//z0AderUoXv37rzw\nwgvExcXZOIM72UNPQnIwBsnB9swef16kMBqUi4sLgwYNYufOnfTv3x8nJyf8/f0pVaoUTZo0sUwH\nFx4ezm+//QZA69atqV27Nt26dcv3/ZBCCCFuJT1Gkxg2bBjffPMN48ePx9HREa014eHh7N27F29v\nb8LDw/Hw8CA1NZWJEyfy3HPPMXPmTFuHLYQQhiQ9Rjswe/ZsPD09+c9//gNk/KiDBw+mZs2aREdH\nM23aNFJSUnBycmLEiBGsWbOGNWvW2DhqIYQwHymMJhAREYGTkxMbN27k2LFjfPHFF0DGcGtwcDBe\nXl4cO3aMJUuWoLXG3d2dcePGMXjwYA4ePGjj6DPYQ09CcjAGycH2zB5/XqQwmoiHhwc7duxg7dq1\nREZGAlChQgVCQkJwdnbmyy+/ZOvWrQBUq1aN/v3707FjRy5cuGDLsIUQwlSkx2hCX375JS+//DLT\np0/Hx8cHgH379jFz5kwcHBwYP348DRs2BGDdunWcPHmSr7/+Wh5RJYQQmaTHaGeee+45JkyYwNSp\nU0lMTATg6aef5uWXXyY9PZ1Zs2bxxx9/ANC1a1dcXFzo16+f4aeNE0III5DCaAI5jecPGjSIZ599\nlrlz51puzejevTvNmjUjMTGRSZMmER8fj4ODA4MHD2b//v0sWLCgmCP/mz30JCQHY5AcbM/s8edF\nCqNJKaVYsmQJTk5OlqtPHRwcCAoKonr16vz111/MmDGD1NRUSpcuzZgxY5g0aRK7d++2ceRCCGFs\n0mM0uZiYGBo2bEjnzp1p2bIlANHR0YwYMYKrV6/Srl07+vfvD0BkZCRz5szh+++/p0aNGrYMWwgh\nbEp6jEBoaKhdnv7fd999bN++nRUrVnDixAkgY+7U4OBgnJyc2LFjB9u3bwegbt26dOnShYCAABIS\nEmwZthBC2ERERAShoaG5blOiCqO/v7+tw7gneRX0OnXq8OGHHzJz5kxiYmKAjKdvDB48GID33nuP\nw4cPA9C2bVuqV6/OK6+8Qnp6epHGnZ09/FEiORiD5GB7Zo7f399fCmNJERAQwPDhw5k2bRpJSUkA\nPPPMM3Tu3Jn09HSmT5/O+fPnUUrRp08fzp49y/jx420ctRBCGI/0GO2I1poePXrw559/MnLkSJRS\npKWlMXXqVA4cOEDVqlWZPXs2ZcuW5erVq4wePZp58+bRtWtXW4cuhBDFSnqMJYRSivfff58bN26w\nYcMGABwdHRkxYgQPPvggf/75JzNnziQtLQ0PDw/Gjh3LW2+9xc8//2zjyIUQwjikMJpAQcbzXV1d\n+fTTT9mzZw/79+8HoEyZMoSEhODm5sahQ4dYsWIFANWrVycwMJD27dsTHR1dBJH/zcw9iSySgzFI\nDrZn9vjzIoXRDvn4+LBt2zaWLl3KqVOnLOvefvttHB0d2bJlC7t27QIyZsx58skn6dSpEzdv3rRl\n2EIIYQjSY7RjGzZsYOjQocycORNPT08AvvjiCxYtWoSTkxOTJ0+mTp06lotz6tSpw7Jly2wctRBC\nFD3pMZZQXbt2JTAwkBkzZpCSkgJA69at6dChA6mpqUybNo2LFy/i4ODAsGHD2L17N4sXL7Zx1EII\nYVtSGE2gMOP5oaGhPPzww7zzzjuWScR79+5NgwYNiIuLY/Lkydy4cYMyZcowbtw4JkyYwN69e60U\n+d/soSchORiD5GB7Zo8/L1IY7ZyDgwOrV6/mwoULlmc1Ojo6Mnr0aHx9fTlz5gzh4eGkp6dTuXJl\ngoKC6NKlC2fOnLFt4EIIYSPSYywhzp49yxNPPEH//v0tz2o8d+4cI0aM4Pr163Tp0oXXXnsNgG3b\ntrF//36+//57ypUrZ8uwhRCiSEiPUfDAAw+wZcsWFi5cyNmzZwHw9fVlzJgxODg4sHHjRsvwSEBA\nAFWrVqVnz57FOm2cEEIYgRRGE7DWeH7Tpk0JDw9n2rRpxMfHA9CgQQMCAwMBWLBgAb/++itKKfr1\n60dUVBQTJ060ynfbQ09CcjAGycH2zB5/XqQwljC9evWia9euzJ49m9TUVABeeOEF2rRpQ0pKCpMn\nTyYmJoZSpUoxevRo3n33XT755BMbRy2EEMVHeowlUFpaGgEBATg5OdGvXz8AUlNT+fe//01kZCR+\nfn5MmzYNV1dXoqKimDRpEhEREdStW9fGkQshhHVIj1HcwtHRkfXr13Py5El27NgBgJOTE2PHjsXH\nx4eoqCjmz5+P1ho/Pz969+5NQECA5ZFWQghhz6QwmkBRjOeXL1+e7du3s3HjRsuzGsuXL09ISAil\nS5fmm2++Yf369QC0aNGCxo0b07lzZ8tEAQVlDz0JycEYJAfbM3v8eZHCWILVqFGDDRs2MGfOHM6f\nPw/Agw8+yKhRo1BKsWbNGstE5K+++irJyckMHTrUliELIUSRkx6jYMmSJcyaNYvp06dTtmxZADZv\n3swHH3yAi4sLM2bMoEaNGly/fp0xY8YQHBxsuZJVCCHMSHqMIlcDBgygTZs2zJkzh7S0NAA6derE\nM888Q3JyMpMnT+bKlSuULVuWcePGMXbsWL755hsbRy2EEEVDCqMJFMd4/oIFCyhdujQrV64EMv6a\nGjRoELVq1SImJoYpU6Zw8+ZNfH19GTp0KJ07d7ZMFJAf9tCTkByMQXKwPbPHnxcpjAKAUqVKsXnz\nZn766Se+/PJLy7q3336b++67j19++YXFixejtebxxx+nffv2tG/fnsTERBtHLoQQ1iU9RnGL48eP\n89RTTzFmzBgeffRRAE6fPs3o0aNJTk7mjTfe4MUXX0RrzYIFC/Dw8GDDhg0oleNQvRBCGJL0GEW+\n1a5dm9WrVzN79myio6MBqF69OsOHDwdgxYoVHDhwAKUU/fv35+jRo0ydOtWWIQshhFWZtjCqDO8r\npb5RSu1QSt1n65iKSnGP57dt25YxY8Ywbdo0bty4AUCzZs3o0aMHWmtmz57N77//jrOzM2PGjGHB\nggVs27Yt12PaQ09CcjAGycH2zB5/XkxbGIFOQKLW+ilgBfC2bcOxL8OHD6dZs2YsWLDA8oSNrl27\n0rx5c27cuMGkSZOIi4vDy8uL0aNH06tXL44dO2bjqIUQovAM0WNUSrkAB4GhWus9meucgUXAS0AS\nMFdrPSvbPuFAhNZ6m1KqfOb7x+9yfOkx3oPk5GRatGhB9erVeeWVVyzrxo4dS1RUFHXq1GHSpEmU\nKlWKPXv2sGXLFv7v//4PT09PG0cuhBC5s1qPUSlVUynlnvn+OaXUYqXUG4UMzgVYCzx620ezgcbA\nM0A/IEQp1TXb5+WB+Mz3CYA8UdfKXFxc2Lp1K/v27WPfvn2WdSEhIVSoUIGjR4/y7rvvorXmmWee\noUGDBrz00kuWp3YIIYQZ5bswKqV6AUeBBkqpx4BtQE1gulIq5F6+XClVG/geeOi29WWAPsAwrfXP\nWuttwExgULbN4gG3zPduQNy9xGAGthzPr1SpEp999hnLli0jKioKAC8vL4KDg3F2dua///2vpb/4\n2muvER8fz8iRI+84jj30JCQHY5AcbM/s8eelIGeM44A+WusIoBdwVGvdCngZ6HuP398C2A00BbKf\n0tYDnIH92dZ9Azyh/r4v4Dvg+cz37YBv7zEGkYd69erx/vvvM336dC5fvgxAzZo1LfOmvv/++xw6\ndAhHR0dGjBhhmU5OCCHMKN89RqXUDaCm1voPpdRJYJXWeqJSqhoZRbJsoQJRKh14Tmu9Ryn1IvCu\n1to72+e1yDhjraK1vqiUcgCWAY8AN4GXtdbRdzm29BitYOLEiaxbt45Jkybh4uICwOrVq1m/fj1l\ny5Zl9uzZVK1alT/++IOQkBA+++wzmjZtauOohRDiTtbqMZ4GWiml2gA1gE8z178OnCxciHcoAyTf\nti5r2QVAa52utX5Ta/2U1vqZuxVFYT3jx4+nTp06LFmyhKw/NF555RWaNm3K9evXmTRpEteuXeP+\n++9n0KBBdOrUiXPnztk4aiGEKBinAmw7AViTuc9WrfXPSqm5QH8yrhy1piQyC2A2Wcv3NAdZr169\nqFatGgAeHh7Ur18ff39/4O/xcqMuz5s3zzDxfvjhhzz22GMsXryYQYMG4eDgwPPPP89vv/3G+fPn\nmTFjBp07d8bV1ZU2bdrQvn17pk2bxvHjxxk2bJjN4y/MctY6o8RzL8u352LreO5l2Uj/P9zr8s8/\n/2zq/x/MGH/W+zNnzpCXAt2uoZSqCPhqrX/OXK4PxGmtf8v3Qe5+7OxDqU2Br4HSWuvUzM/9gR1A\nOa11egGPbeqh1IiICMuPbATnzp2jYcOG9OnTh8aNGwMQHR3NiBEjuHr1KgEBAfTr1w+tNXPnzqVS\npUr07duXli1b2jjywjHa73AvJAdjMHsOZo8frDslXAJQRykVppSqAHgCNwobYA5+JqNv2CzbuqeB\n/ytoUbQHRvsP0NfXl61bt7J48WLLX1/e3t68/fbbODk58dlnn7Fz506UUgwYMIBDhw5x4MAB2wZt\nBUb7He6F5GAMZs/B7PHnpSC3a/gBvwATybhC1YOMq1GPKqX+ac2gtNY3gJXAEqXUE0qpDsAIYJ41\nv0fcu0aNGrFgwQKmTZtGXFzGnTK1a9dm4MCBACxdupRDhw6xa9cunJ2dCQkJoUaNGsyYMYOkpCRb\nhi6EELkqyBnjAmAr4MffF8K8AmzEOgXr9rHO4cCPZNzOsQQI1VpvssL3mE72MXIj6dGjBz179mTW\nrFmkpKQA8Nxzz9GpUyfS0tIIDQ1l+fLlHDlyhNTUVE6fPs3YsWPx9fVl8eLFNo6+4Iz6OxSE5GAM\nZs/B7PHnpSCFsRmwKHuzLvP9LKBBYQPRWjtmTQeXuXxDa/2G1rq81rqq1rpQxTc0NNTuf0xbmDp1\nKlWrVmXZsmWWK1UfeOABnJyc0Fpb5lnN7vLlywwePJg2bdpw4cKF4g5ZCFGCRUREEBoamus2BbmP\n8U/gVa31XqVUAlBPa31aKdWRjIJ5f2EDLipmv/jG6BISEmjcuDHNmzfn+eefZ8iQIfm6TaNs2bI4\nOjrSo0cPxo0bR9WqVYshWiGEsN7FN+8CSzMLoQJqK6UCgfeA9wsfpjArNzc3tm/fzubNm1m+fDl/\n/fVXvva7ceMGHTt25OLFi/zjH/8gMDAwX5dSCyFEUcp3YdRaTwYWAwvJuAF/GzAJCCfjghxRRMww\nBPzQQw/x8ccfs2vXrhyHT3OSnp7O0aNH6dWrF4sXLyYhIYEGDRrw+uuvc/KkteeMKDwz/A55kRyM\nwew5mD3+vBTodg2t9UKt9QNkTNrtqbX20VrPLIm3UIg7NW/enBo1ahRon6yLdtzd3enRowfvvPMO\naWlpNG7cmJdfflme8SiEKHYF6TH2zu1zrfV/rBJREZAeY/Fp27Ytn3/+eb639/PzY86cOfw9N3yG\nxMREduzYwbZt22jRogUTJkygXr161g5XCFFC5dZjLEhhvH12GyfAG0gF9mutn79zL2NQSukJEybg\n7+9v9zem2trChQsJCgoiLS0t3/vUrFmTl19+mYYNG95RIJOSkvj888/ZunUrjRo1IiwsjIYNG1o7\nbCFECREREUFERARhYWGFL4w57qxUWTIuyjmutZ56zwcqYmY/YzTT9EtJSUnUr1+fX375Jc9ty5cv\nD0B8fMbzpmvUqMHLL79M48aN7yiQycnJ7Nq1iy1btlC3bl3CwsJo1qzZHccsSmb6He5GcjAGs+dg\n9vjBulPC3UJrfR0IA4YV5jjCfri6uhISEkLFihVz3c7d3Z0+ffrw/vvv8+abb+Lh4cGpU6eYMmUK\nQ4cO5dtvv73lIh4XFxcCAgJ45513eOSRR+jSpQstWrQgIiICM//RI4QwnkKdMQIopbqQ8exEL+uE\nZH1mP2M0o1WrVjFlyhROnjx5S4FzcHCgcuXKdO3alWeeecayPjk5mS+++IJNmzZZHob84IMP0q1b\nN5o1a4ajo+Mtx09NTSUiIoLNmzfj6+tLWFgYrVq1uuNMUwghcmKtHuM+7py2zQ34BxCutR5bqCiL\nkBRG20hOTmbZsmWWycZr1qxJ06ZNad26NaVKlcpxn5s3b7Jr1y4+/vhjYmJiALj//vvp2rUrTz/9\n9B0FMi0tjX379rF582Y8PT0JCwvjhRdekAIphMiVtQrjhNtWaTKegPGj1np34UIsWmYvjGYfz9da\n0717d3bu3EmrVq3o0KEDFSpUyHWflJQUdu/ezcaNG4mOzngGta+vL127dqVFixZ3FMj09HS+++47\nNm3ahKurK6GhofzrX//CwaFQ3YJbmP13AMnBKMyeg9njByv1GLXWYbe9Jmqtpxu9KGaRuVJtRynF\nW2+9RWRkJD4+PgwZMoR33nkn13lSS5UqRZs2bXj33XcZPHgwlSpV4ty5c8ydO5f+/fvz5Zdfkpqa\natnewcGBJ598kvDwcDp27EhwcDB16tRh3bp1BbpCVghh3wo9V6pSamV+v0xr/Vq+IytmZj9jtDeX\nLl1i7ty5vPvuuzRo0IBOnTpRrVq1XPdJTU1l7969rF+/3jLlnLe3t6VXefvQrNaaQ4cO8fHHH3Pj\nxg3Gjx/twZiLAAAgAElEQVTPq6++ipOTU1GlJYQwkXseSlVKfZDfL9Fav3EPsRULKYzGFB8fz5Il\nS5gzZw5+fn68+OKL1KpVK9d9snqK69ats0xUXrFiRbp06cJzzz2XY4GMjIxk48aNXL58meDgYHr1\n6oWzs3OR5SWEMD6r9BjNzOyF0R7G83PL4caNG/znP/9hxowZeHl50alTJxo0aJDrBTRpaWns37+f\ndevW8ccffwDg5eXFSy+9xPPPP59j4Tt69CibNm3i3LlzjBs3jj59+uDq6mqVHMxCcjAGs+dg9vjB\nSj1GpZSDUuolpdQEpdTEzNckpdRMpdQu64UrSprSpUszcOBATp06xfDhw/noo48YNWrUHfcyZufo\n6Ejz5s1ZtGgRY8eOpVq1asTGxrJ06VICAwPZunUrSUlJt+xTp04d/v3vfzNixAg++ugjqlWrxpw5\nc0hMTCyONIUQJlGQq1KXAG8APwGNgG+BGkAFYJrW2rBP2DD7GWNJk56ezqeffsqkSZO4fPkyHTt2\nxN/fP9f+YHp6Oj/88APr1q3j9OnTAHh4eNCpUyfatWuX45nh6dOn+fjjjzl+/DgjRoxg4MCBuLm5\nFVleQgjjsNbtGpeAflrrzUqpE0Bn4BfgA+Cw1nq2tQK2NimM5qS1Zs+ePUyaNIlffvmFDh060KpV\nq1yHP7XW/Pjjj6xdu5aoqCggY+q5rAJZpkyZO/b5/fff2bRpE//73/8YPHgwQ4cOxcPDo8jyEkLY\nnrWmhCsP/Jj5PhJorLVOBaYDgwoXosiNPdxmci85KKV49tlniYiIYOvWrZw/f5633nqLjRs3cu3a\ntbvu06hRI+bMmcOECRN45JFHiI+P58MPP6RPnz6sX7+e69ev37LPgw8+yPDhw5kyZQr79++nevXq\nBAcHExsbW+gcjEZyMAaz52D2+PNSkMJ4Cng88/1RMoZTs45h2Ongssh9jObWqFEjtm3bxt69e0lN\nTeWtt95i5cqVXLlyJcftlVI0bNiQWbNmMXHiRGrXrk1CQgKrV6/mzTffZO3atXcUV19fX4YMGcLM\nmTP56aef8PPzY9SoUVy8eLE4UhRCFINC38d4y4ZKvQEsBnoDh4FDwAqgKfCX1rptIWItUjKUan9+\n++03ZsyYwbp162jRogUdO3bE29v7rttn3baxdu1ajhw5AkCZMmVo3749HTt2zLG3GB0dzZYtW/j6\n66957bXXGDt2LFWqVCmynIQQxcdqt2sopZ4EbmitDymlWgN9gFggVGt992lMbEwKo/26cOECc+bM\nYdmyZTRs2JAXX3yR+++/P9d9IiMjWb9+PYcPHwYyrooNCAigY8eOuLu737LtzZs32bx5M7t27SI2\nNpZHHnmEfv360bdv3wLd6iGEMBZrXXwzANigtY6xZnDFweyF0R7uGSrqHK5cucLChQtZuHAhtWrV\nolOnTtSsWTPXfY4dO8b69es5dOgQkPHIrHbt2tGpUyc8PDzYs2cPGzZs4K+//rrjtpGaNWsSEhJC\nz549iyynoiD/LRmD2XMwe/yQe2EsyPxYA4F5SqkIYB2wSWsdZ4X4hCg0T09Pyz2Ky5cvZ8aMGVSp\nUoUXX3yRunXr5jhZwKOPPkpYWBi//PIL69at4+DBg2zevJnPPvuMf/zjH5w8eZKEhIQcv+/XX38l\nKCgIwHTFUQiRu4IOpf4DeAnoQsY9jP8lo0huzXxosSGZ/YxRFNzNmzdZtWoV06ZNw8XFhRdffJEn\nnngi16dtREVFsW7dOn744Yd8f0/VqlWJiorCxcXFGmELIYpJkUwJp5R6FOgGBGUex7B3RkthLLnS\n0tLYvHkzkyZN4vr163Tq1CnH5zpm98EHH7B58+Z8f8cLL7zAp59+atVHXAkhipa17mPMOpibUuoV\nYBIwHDhLxr2MoojYw20mtsrB0dGRLl26cPjwYZYsWcJ3333HgAED2LlzJzdv3sxxnzNnzhToO/bu\n3UvHjh2JizN+Z0H+WzIGs+dg9vjzUpC5Ut9USm0HLgETgRNAU631P7TWU4oqQGuR+xhLNqUUrVu3\nZv/+/WzYsIFTp07Rr18/Nm/efMdcqSkpKQU6drVq1VBK8c9//pOjR49aM2whhJVZ+z7GP4ENwDqt\n9YFCR1eMZChV5OTw4cNMmTKFXbt20aZNGwICAnB3d2fChAmWK1Xz4/HHHycsLIw9e/bw4YcfsmTJ\nErp161aEkQshCstat2uYtrqYOHRRDKKiopg2bRqbNm2iZcuWlClThnXr1t31yR7ZKaXo27cvAQEB\nAJw6dYqZM2fStWtXZs2aJQ9GFsKgrNVj9FRKTVNKfamU2quU+jr7y0qxihzYwxCwkXPw8/Pj/fff\n5+jRo1SrVo3PPvuM0qVL52tfrTVRUVEkJycDUKNGDWbPns23335Ly5YtDTednJF/h/ySHGzP7PHn\npSCFcRUZj506DOwBdt/2EsLUfH19mTt3LqdPn6ZVq1a5PigZMmbMcXR0ZPfu3YwcOZI///wTADc3\nN95++23uv/9+GjRowPfff18c4QshrKQgQ6k3gOZa6x/z3NhgZChV3Itly5YRHBzMpUuXblnv4OBA\n5cqV6dq1Kw899BAzZszg3LlzuLq6MnDgwFtmBDlw4ACLFy9m4sSJDBgwIM9iK4QoHtbqMZ4Eumut\nD1ozuOIghVHcq+TkZJYsWcLy5cuJiorCzc2Njh07EhAQQKlSpQBITExk8eLFfP11RkehTZs2BAYG\n4uzsDMD58+eZMWMGzZo147333sv3MK0QouhYq8c4BliilGqnlKqllKqe/WWdUEVO7GE836w5uLi4\nEBQUxNGjR/nkk09o164du3btuuVexzJlyjBy5EgGDBhAqVKl+Pzzzxk5ciTnz58HoEqVKpazyiZN\nmvDbb7/ZKBvz/g7ZSQ62Z/b481KQwvgx0BD4DDgGnMx8RWX+Uwi7VqZMGVauXMnMmTOZPHkymzZt\nsly5qpSibdu2zJo1i8qVK/Pbb78xbNgw9u3bB2RMUB4UFESTJk144okn+OKLL2yZihAiFwUZSn0w\nt8+11r9bJaIiIEOpwtp+//13unfvTlJSEkOHDsXL6+9ndScmJrJgwQL2798PQLt27ejTp49l6PXI\nkSOEh4czZMgQgoODZSo5IWzAqnOlZj6TsSYZZ5APAie11smFjrIISWEURSEtLY0pU6Ywf/583nrr\nLZo2bWr5TGvNjh07WL58OampqdSoUYMxY8ZQuXJlAGJjY5k1axbVqlVjzZo1dzwHUghRtKzSY1RK\neSulDpDxRI1lQEVgMnBcKeVnlUiLkJmnhDNr3NnZYw6Ojo78+9//Zvv27axevZp33nmHpKQkION/\nuhdeeIFZs2ZRqVIlTp06xbBhwyxnkV5eXkyaNAkHBwcef/xxjhw5YpMczEhysD0zx5+fKeEKMoaz\nEDgD3AfcyFzXg4z7GhcWPLziFRoaavoHawpjatKkCZGRkXh4eDBixAhOnTpl+czPz4958+bRtGlT\nEhMTmT59Ou+99x4pKSmUKlWKvn370rFjR5o3b866detsmIUQJYO/v79V50qNIeM+xmNKqQSgntb6\ntFKqFvCD1tqwY0EylCqKy5o1axgyZAidOnWiQ4cOlv6h1ppt27bxwQcfkJqaysMPP8yYMWOoVKkS\nAKdPn2bmzJm89NJLzJo1y9KPFEIUDWvdxxgNtNNaH7ytMLYkY2LxStYL2bqkMIri9Ntvv9G9e3fS\n0tIYPHgwFSpUsHz266+/MmPGDKKjoylbtizDhg2jSZMmACQkJDB37lycnZ3ZtGmTpWgKIazPWvcx\nfgQsVErVAzRQXinVClhKxlM3RBEx83h+lpKUw0MPPcQ333xD27ZtGT58OAcO/P0wmpo1azJ//nwa\nN27M9evXmTJlCsuXLyclJQU3NzeCg4N54IEHaNCgAd99953NcjAyycH2zB5/XgpSGEcD3wI/AOWA\nQ8AO4MvMz4QQmZycnJg4cSJbtmxhxYoVLF261HJhTrly5QgODubNN9/E0dGRrVu3Mm7cOKKjo3F0\ndOSVV16hT58+BAQEsHjxYmS0Q4jidS+3a5QGqgNOwCmt9bWiCMyaZChV2NLVq1fp27cvBw8eJCgo\niIceesjy2YkTJ5gxYwYxMTGUK1eOoKAgGjVqBPw9lVzTpk1ZtmyZTCUnhBVZq8fY/C4faeAm8JfW\n+uy9hVi0pDAKW9Nas3LlSoKCgnjppZdo3769ZULx+Ph45s6dy8GDGdMQv/jii/Ts2RMnJyeSkpJY\nsmQJMTExbN269ZaiKoS4d9bqMb5PxuOmIoBPgC2Z7yOAr4EzSqnvlFKVCxOsuJM9jOeX9ByUUrz+\n+uv8+OOP/PTTT0yePJkrV64AUL58ecaPH0+vXr1wcHBg8+bNvP3228TExNwxldznn39usxyMQnKw\nPbPHn5eCFMYVwI9ALa21l9a6AuAH7AOCAW/gT2CBtYMUwl7UqFGDb7/9lmeffZbhw4dbzhIdHBzo\n3LkzU6dOxcvLi+PHjzNkyBAOHjyIUooOHTowatQoXnvtNcLCwixztAohrK8gQ6mXgOe01odvW18P\n+FJrXVEpVRv4Vmvtaf1Q750MpQoj2rt3L6+88goNGzbk9ddftzymKi4ujjlz5nDo0CEAunTpwquv\nvoqjoyOxsbHMnj2bBx54gDVr1uDh4WHLFIQwLWsNpULGNHA5rXPKtiwVSIh8aNGiBUeOHMHJyYnR\no0fz++8Z8/C7u7szYcIEXnvtNRwcHNi4cSPBwcHExsbi5eXFxIkTcXJy4vHHHycyMtLGWQhhfwra\nY/xQKfWmUqqeUqq+UupN4ANghVLKC5hJRs9RWJE9jOdLDjnz9PTk448/5u2332b8+PF89tlnaK1x\ncHCgS5cuTJ48mQoVKnD06FGGDh3KTz/9RKlSpQgMDKRTp060aNGCjz76yKY5FDfJwfbMHn9eClIY\nxwFLgDDgJzLuYwwDFgEjyXhWYwow0MoxWoWZJxEX9k0pRe/evfnhhx84cOAAU6dOJS4uDoC6desy\nf/586tevT1xcHBMmTGD16tWkpaXRsmVLwsLCGD16NEOGDCElJcXGmQhhfPmZRLzA9zECZJ4dpmqt\n4+4ttOIlPUZhFjdv3iQkJIQVK1YwaNAgHn/8cSDjEVcbN27ko48+QmtN3bp1GTlyJBUqVODatWvM\nmzcPR0dHNm3ahI+Pj42zEML47vk+RqVUb2CN1jo58/1daa3/U7gwi44URmE2X331Fa+++ipNmjSh\nZ8+elknFDx8+zOzZs7l69SoeHh6MHDmSevXqkZ6ezvr169mzZw+bNm2iWbNmNs5ACGMrzMU348mY\n/i3r/d1eIdYJVeTEHoaAJYeCadmyJZGRkaSlpTF69GjOns2YO6NevXosWLCAxx57jKtXrzJ+/HjW\nrl2L1pru3bsTGBhI+/btWbRoUY5TycnvYAxmz8Hs8eclr8I4DIgH0Fo/lNMLeAz4uKgDFaKk8fLy\nYsuWLYwaNYrg4GB27tyJ1hpPT08mTpzIyy+/DMBHH31EaGgoV65coVGjRkybNo158+bRo0cPEhMT\nbZyFEOaT11BqGlBZax2dbd1Z4Gmt9e+Zy5WA81prx6IO9l7JUKowuxMnTtCtWzfKlSvHgAEDcHfP\nePzpTz/9RHh4OHFxcXh6ejJq1Cjq1q1rmUru0qVLbN26lerVq9s4AyGMpTBDqTnt5AkYtggKYY9q\n1arFgQMHaNKkCcOHD+fnn38GoEGDBsyfP586depw5coVQkJCWL9+Pc7OzgQFBdGsWTMaNWrEzp07\nbZyBEOZR0Bv8hQ3Yw3i+5FB4Li4uhIeHs3r1ahYtWsSHH35ISkoKXl5eTJkyha5du5Kens7q1asJ\nCwsjPj6e9u3bM2zYMLp06YKfnx/169enbdu2LFy40PIYLLOx9e9gDWbPwezx50UKoxAm06pVKyIj\nI0lMTGTs2LH8+eefODo60rNnT0JDQ3Fzc+PQoUMMHTqUVatW8e6773Ljxg1OnTrF4cOH+fzzzwkK\nCqJ+/fqsWrXK1ukIYTh59RjTAZ/beowJQD2t9enMZekxCmEDWmuWLFnC+PHj6dGjB61atUIpRUxM\nDDNnzuT48eN5HqNixYqEh4fTs2fPYohYCOMozH2M6UAQkJBt9SIyZry5lLlcHgiXwiiEbRw7doyu\nXbvi6enJgAEDcHNzIzExkTfffJNr1/J+jvgjjzzC4cOHcXFxKYZohTCGwlx8c5aMWzay37N4EXgr\n2/LQzO1EEbGH8XzJoeg8+uijHDx4kMcff5ygoCAiIyPZvXt3vm/V+PXXX1m4cGERR2k9Rv0dCsLs\nOZg9/rw45fah1rpaMcUhhCgEV1dX5s+fT9u2bXn99ddRSuX7mY1aa95++22qVq1Kt27dUCrHP6KF\nKDHuaa5Us5GhVFGSREdHU6tWLa5cuZLvfWrUqAHAgw8+yNKlS/Hz8yuq8IQwBGs+j1EIYXDe3t40\natSoQPu4u7sze/ZsqlWrxhNPPEFoaCjJyclFFKEQxiaF0QTsYTxfciheL7zwAo6O+b8eztvbGycn\nJzp16kR4eDhffvklderUYffu3UUY5b0x0+9wN2bPwezx50UKoxB2KDAwsEDDoZ9//jmzZs0iLi4O\nb29vxo4dS/fu3enZsyfdu3fn4sWLRRitEMYiPUYh7NTq1asZPnw4ly5duus27u7uNGjQgO+++47k\n5GTc3Nzo27cvLVq0QClFUlKS5XFWkydPpl+/fjg4yN/Twvzu+T5GeyGFUZRUq1atYsqUKURFRZGW\nlnbLZ15eXrz22ms888wzXLhwgUWLFnH48GEAnnjiCQYMGMB9990HwJkzZ1i6dCmurq4sW7aM+vXr\nF3suQliTXHxjcvYwni852EbPnj05fPgw8+bNo02bNtSvX582bdowYMAASpcuTWRkJPHx8fj4+DBp\n0iSGDBlC2bJl+fHHHxkwYAA7d+4kPT2datWqMWXKFJo2bcqzzz7LsGHDSEhIyDuAImDG3+F2Zs/B\n7PHnpcQUxtDQULv/MYXIiYuLC4MGDWLnzp3MnTuXnTt3snjxYo4fP07t2rUZOnQo+/btAzLmYV28\neDGNGzfmxo0bLFmyhJCQEM6fP4+DgwPPP/88CxYs4NixY9SqVYtPPvkkxwciC2FUERERhIaG5rqN\nDKUKUcJ9//33vPHGG3h6etK3b1/uu+8+tNbs37+fpUuXcvXqVZydnXn11Vfp2LGj5WrXyMhIli5d\nyqOPPsqSJUuoVq2abRMRogCkxyiFUYhc3bx5kylTprBw4UK6d+9O69atcXBwID4+nuXLl/PVV18B\n8PDDDzNkyBBLEUxJSWHLli18+umnjB49mhEjRuDs7GzDTITIH+kxmpw9DAFLDsZwtxycnZ0JCwtj\n3759/Pjjj4wfP54///yT8uXLM3z4cCZMmMB9993HyZMnGTZsGGvWrCElJYVSpUrRpUsXZs2axZYt\nW6hXr55lWLa4czATs+dg9vjzIoVRCGFRp04dvvvuO3r37s24cePYuHEjqampNGzYkMWLF9O2bVvS\n0tJYt24dw4YN45dffgHAx8eHkJAQ/vWvf/HSSy/Rq1cvYmJibJyNEPdGhlKFEDk6c+YMgYGBnDlz\nhoEDB1omDDhy5AgLFy7k/PnzKKXo0KEDPXr0wNXVFYDExETWrl3LN998w4wZM+jVq5fc+ygMR3qM\nUhiFuCdaa1atWsXw4cNp2bIl3bp1w9XVleTkZNauXcsnn3xCeno6Pj4+DB48mMcee8yyb1RUFEuX\nLqVChQq899571KlTx4aZCHEr6TGanD2M50sOxlDQHJRSvPbaaxw7dgyAoKAg/ve//+Hi4kKvXr0s\nE49fuHCB4OBgFi1axPXr1wHw8/Nj+vTp1KtXj6effpoxY8bk+xmR1szBiMyeg9njz4sURiFEnry9\nvdm4cSNLlixh0aJFLF68mGvXrvHwww8zd+5cevTogZOTE1988QUDBgzgwIEDADg6OtKuXTvmzZvH\njz/+SK1atdi+fbuNsxEidzKUKoQokLi4OEaNGsWWLVsIDAykadOmAJw9e5YFCxZYLshp3rw5ffv2\nxd3d3bLvTz/9xHvvvcc///lPFi1aRNWqVW2SgxDSY5TCKITVff311/Tu3ZsqVaoQGBiIp6cnaWlp\nbN++nZUrV+Y4KTlk3DO5adMmdu7cSUhICEOGDMHJycnG2YiSRnqMJmcP4/mSgzFYM4fmzZtz5MgR\nnnzySYYNG8auXbtwcHCgQ4cOLFq0iHr16pGQkEB4eDgTJ060POXD2dmZ7t27M23aNNasWUODBg34\n4YcfbJKDrZg9B7PHnxcpjEKIe+bq6sq0adPYvXs3e/fuJTQ0lAsXLtwxKfnBgwcZOHCgZVJyAF9f\nX0JDQ2ndujUBAQH07duXK1eu2DgjIWQoVQhhJampqcyZM4dp06bRuXNn2rdvj6OjI7GxsbzzzjuW\ns8K6desyaNAgqlSpYtn32rVrrF69mgMHDjBnzhxeffVVy9CrEEVBeoxSGIUoNlFRUfTu3ZuYmBj6\n9+/PQw89lK9JyQFOnDjB0qVL8fX1ZenSpTzyyCM2zETYM+kxmpw9jOdLDsZQHDn4+fmxd+9egoKC\nCA0NZc2aNaSmpvLUU0+xePFi/P39uXnzJh988AGjRo3izJkzln1r1arF7NmzqVmzJk2aNGH8+PEk\nJSUVew5Fzew5mD3+vEhhFEJYnVKKwMBAIiMjSUxMJCgoiGPHjlG+fHlGjBhx10nJIePexw4dOjB3\n7lwiIiJ49NFH2bVrl40zEiWJDKUKIYrcpk2bGDBgAI0bN6ZHjx6UKVOGxMREVqxYwc6dOwF44IEH\nGDJkyB3DpwcOHOD999/nqaeeYv78+fj4+NgiBWFnpMcohVEIm7ty5QpBQUF88cUX9OvXj4YNGwJ5\nT0oOEB8fz6xZszhy5Ai+vr64u7vz9NNP07t3bx588EEqVKggF+uIApHCaPLCGBERgb+/v63DKBTJ\nwRiMkMPu3bt58803qVGjBr1798bd3T3HSckHDRpEvXr12LNnDxs2bOCvv/6y3OqRpVSpUjg6OpKW\nlsZ9991HxYoV8fHxoXLlyvj6+lK5cmV8fHyoVKkSPj4++Pj4UK5cOZsXUSP8DoVh9vgh98Io000I\nIYrVs88+y9GjRwkJCWHo0KH06tWLFi1a0KtXL5588kkWLFjAmTNnCAkJoU6dOvzxxx/Ex8fneKyU\nlBTKlCnD66+/Tr169bh69SpXr17lypUr/P7770RGRhIXF8eVK1e4cuUKsbGxAFSsWBFvb298fHyo\nUqUKVapUoXLlyrcU0EqVKt1y1ipKDjljFELYzI8//sgbb7xB2bJl6devH97e3qSkpLB582bWrl1L\nWlpavo7j6+vLwoULKVWqVJ7b3rhxw1IosxfS+Pj4W5ZjY2MpXbo03t7eeHt7U7lyZUsRvf0stGLF\nijKtncnIUKoURiEMKyUlhenTpzN37ly6du1Ku3btcHBwYOXKlWzcuDFfx3BwcCAwMJCAgACrxaW1\n5tq1a5Yimr2QZhXRrPVxcXG4u7vj7e1NpUqVciyinp6efPHFF+zdu5fk5GRcXV1p164dgYGBcmZq\nA1IYTV4Y7WE8X3IwBiPncOLECd544w2uXbvGgAEDWL58OYcOHcr3/rVr12b06NGUK1cOFxeXYu0j\npqWlER8ff0cRjYuLIy4ujlOnTnH+/HlSU1Pv2NfDw4PnnnuOgIAASzGtUqUKHh4eNu+F3o2R/zvK\nL+kxCiEMr1atWuzfv5933nmH4OBgnJ2dC7T/8ePHeeONNwBwcnKiXLlyeb7c3NwoW7bsLcsF/V7I\nuPfS09MTT0/POz7bs2cPhw4dyrEoAly9epVt27Zx/PhxXF1diY2NJSYmhtTUVMvZp6+vL1WrVuX+\n+++/pXhWqVKFsmXLFjhekTu7OGNUSv0L6KC17n2Xz019xihESXP27Fkef/xxy8Uy+eHi4kLZsmVJ\nSEiwTBZwL5ydnSlXrhxly5bFzc0t16KatV3Wutt7nDdv3mTIkCGcO3cuz++9vU+a1QuNjY0lNjaW\ny5cvW4ZtL1++TGxsLJcuXcLZ2fmWK3FzKqCVK1e+p4KfXVJSEsuWLWPHjh0kJSWZfijYrodSlVIz\ngQDgeymMQtiPBQsWEBQUdMctGjm5vceYnJzMtWvX8v1KSEjg+vXrXLt27a5ndvnh6up6S/FMSEjg\n999/z9e+99In1Vpz/fr1W4rn5cuXLf3PrAJ6+fJlypcvf0sBfeCBB/D19b2lgHp7e98yd22WVatW\nMWXKFKKiom65IMrR0RE/Pz+Cg4Pp2bNnvuM2AsMWRqWUC3AQGKq13pO5zhlYBLwEJAFztdazcjlG\nZyAGeN1eC6M9jOdLDsZgphySkpKoX78+v/zyS57bFuSq1NxorUlOTiYhIeGeCmt+inhuXFxc8PPz\nw83NDTc3N8qXL285M816n7U+pzPUu8nqgWYvnrcX0JiYGBISEvDy8sLHx8dy9hkTE8N///tfEhIS\n7nr8ihUrEh4ebqriaMgeY2ZRXAs8ettHs4HGwDPA/cBqpdTvWusNOR1Ha71JKdWiSIMVQhQ7V1dX\nQkJCGD58uOUhxzkpU6YM/v7+xMfH4+7uXqjbJpRSuLq64urqSsWKFQu0r9aaGzduWArltWvXeO+9\n9zh79my+j5GcnMzRo0fzvX3p0qVvKaC3v24vppUrV6ZGjRp3vagnJSXFUigvX75MdHR0nkUR4NKl\nS0yZMoWuXbvi4uKS7/iNyiZnjEqp2sBHmYuPAa201nuUUmXIOPt7QWv9Vea2wUBrrXXzzOVJwFNA\ngta6Q+a6FtjxGaMQJdndhvGUUpQrV46qVavi4OBAdHQ0V65coWzZsnh5eeHh4YG7uzvly5fH3d0d\nDw8Py8vT0xN3d/dCn2HmZcKECQW+srZHjx4kJCRYXvHx8TkuX7t27Z7OUB0dHS3F8vYz0duL6aFD\nh2WcC0cAABHfSURBVNi8eXO+vsfR0ZH58+czcODAAsdkC4YbSlVKvQX4ASFAIvBcZmFsCuwDymit\nb2Zu2wL4PHNdjsFKYRTCviUnJ7Ns2TK2b99OcnIyLi4uBAQE0KdPn1vOUNLT04mNjeXixYuW14UL\nF/jrr7/466+/uHDhAtHR0URHR3P58mVKly5NhQoVLIUypyKaVUjvpYhu27aN5cuX31OfNC/p6ekk\nJibmWEBzK6Y3btwocB751aZNG8uk8EZnuMJ4SwBKpfN3YXwReFdr7Z3t81rAUaCK1vriXY5h14XR\nTH2hu5EcjEFy+Ft6ejpXrlzhwoULtxTS7EX04sWLREdHExsbi6ur6y1FNKuQ3l5APTw8LFeAFuaq\n1KKSkpKSr2KakJBAVFQUN2/ezPexW7ZsyZ49e4oweusxZI/xLsoAybety1q+68C11novsLeoghJC\n2B8HBwe8vLzw8vKiTp06uW6rtebKlSu3FNCss9Fz587x66+/cvHiRS5dusSlS5dwcXGxFNFy5crh\n7Oyca4Fxd3enW7duRV4UIWPi9QoVKlChQoU8ty3oULA99BfBeIUxiTsLYNZyYmEO3KtXL6pVqwZk\nzDRRv359y1+dWU+jNupy1jqjxHOvy9lzMUI8JXHZ39/fUPHcy3LWOlt8f4UKFbh48SKVKlWiW7du\nOW7/1Vdfcf36dR5++GEuXLjAnj17+Pbbbzl06BCXL1/mdg4ODri6unLs2DEuXLhAcnIyHh4eNGnS\nBC8vL06cOAFA3bp1Afj/9u4+yK66POD49yEYpMY0aBaqNVNRKxoUmYpvpeJiwVfUsXRaUTpCqdba\ndLDFztQqzcaqadGmyFSkUGoHHdHOFEello6UXEWttr5AsVo1sm9pYoBqEmwBSXj6xzm7HiLJvbsh\ne87v3u9nZif3nHPZfR529z57nuec+7vllluWbPukk07ia1/7GoN03JYtW8YZZ5zR+s/HgV5/er0e\nU1NTfXPpWiv1OcBngSMzc099fBz4FLAiMxd1LXTprVRJ5XugOenpp5/Oaaedxvbt25mZmWFqaorJ\nyUmmpqaYnZ1lx44drFq1imOOOYaxsTEe8YhHMDY2Nv9x9NFHH9J3vllIK/i4447j5ptvLuassaQZ\n45FUV6W+ODM/Wx+/EHhBZj73IL5G0YWx+ddxqcyhG8yhGwbNYe/evWzbto2ZmRmmp6eZnp5mcnKS\nyclJZmdn2bp1KxExv8LHXGt4bkWQsbExjjrqKA477LBFx7p582auvPJKdu3atd/njI2NsWnTJs4+\n++xFf52lVsyMMTPvioirgEsj4lzgUcAFwHntRiZJS2/ZsmWsWbOGNWvWcPLJJ//E8cxk586d80Vz\nZmaGyclJtmzZwvXXX8/s7Cy7du2aL5SrV6/mkY98JKtXr77fvgOd5Z166qlk5gMuFt1855uSimI/\nXThj3Et9H2O9fSRwKXAmsBt4T2ZefJBfo+gzRklarLvvvpvZ2dn7nXXeeuut8+3a7du3s2LFiv22\na8fGxli5ciV79uzhuuuu48tf/jLT09OMjY2xbt26n7hlphSdbqUuhYjI9evXz198IEmq3HfffezY\nseN+Z51zhXNmZoatW7dy7733zrdrV69ezZYtW3jjG9/I+eef33b4C9br9ej1emzYsMHCWHKeozRT\n6TJz6AZzWHq7d++eL5rT09PceOONvOUtb+GEE05oO7RFK2bGKEnqnpUrV/LUpz51/paOtWvXFl0U\n+/GMUZI0cg50xrj4a3glSRpCI1MYJyYm7vcOCCUpNe4mc+gGc+iG0nMoOf5er8fExMQBnzMyM8Z+\n/yMkScNv7u6EDRs27Pc5zhglSSPHGaMkSQOyMBag5H7+HHPoBnPohtJzKD3+fiyMkiQ1OGOUJI0c\nZ4yUfbuGJOnBMcjtGiNVGEt6b8KmYSjo5tAN5tANpedQcvzj4+MWRkmSFsIZoyRp5DhjlCRpQBbG\nApTcz59jDt1gDt1Qeg6lx9+PhVGSpIaRmTGuX79+/s1jJUmjqdfr0ev12LBhw35njCNTGEchT0nS\nYLz4pnDD0M83h24wh24oPYfS4+/HwihJUoOtVEnSyLGVKknSgCyMBRiGfr45dIM5dEPpOZQefz8W\nRkmSGkZmxuh9jJIk72OsefGNJKnJi28KNwz9fHPoBnPohtJzKD3+fiyMkiQ12EqVJI0cW6mSJA3I\nwliAYejnm0M3mEM3lJ5D6fH3Y2GUJKnBGaMkaeQ4Y5QkaUAWxgIMQz/fHLrBHLqh9BxKj7+fkSmM\nExMTQ//NlCQdWK/XY2Ji4oDPccYoSRo5zhglSRqQhbEAw9ACNoduMIduKD2H0uPvx8IoSVKDM0ZJ\n0shxxihJ0oAsjAUYhn6+OXSDOXRD6TmUHn8/FkZJkhqcMUqSRo4zRkmSBmRhLMAw9PPNoRvMoRtK\nz6H0+PuxMEqS1OCMUZI0cpwx4uoakqTBVtcYqcI4Pj7edhiLMgwF3Ry6wRy6ofQcSo5/fHzcwihJ\n0kI4Y5QkjRxnjJIkDcjCWICS+/lzzKEbzKEbSs+h9Pj7sTBKktTgjFGSNHKcMUqSNCALYwGGoZ9v\nDt1gDt1Qeg6lx9+PhVGSpAZnjJKkkeOMUZKkAVkYCzAM/Xxz6AZz6IbScyg9/n4sjJIkNThjlCSN\nHGeMkiQNyMJYgGHo55tDN5hDN5SeQ+nx92NhlCSpYWRmjOvXr2d8fJzx8fG2w5EktaTX69Hr9diw\nYcN+Z4wjUxhHIU9J0mC8+KZww9DPN4duMIduKD2H0uPvx8IoSVKDrVRJ0sixlSpJ0oAsjAUYhn6+\nOXSDOXRD6TmUHn8/FkZJkhqcMUqSRo4zRkmSBmRhLMAw9PPNoRvMoRtKz6H0+PuxMEqS1OCMUZI0\ncpwxSpI0IAtjAYahn28O3WAO3VB6DqXH34+FUZKkBmeMkqSR44xRkqQBWRgLMAz9fHPoBnPohtJz\nKD3+fiyMkiQ1OGOUJI0cZ4ySJA3IwliAYejnm0M3mEM3lJ5D6fH3Y2GUJKnBGaMkaeQM5YwxIo6I\niI9GRC8ivhARz2w7JklS+YotjMBvAt/MzHHgHODiVqM5hIahn28O3WAO3VB6DqXH309rhbE+47sl\nIp7f2Lc8Ii6PiO9HxLaI+MMDfIqrgIvqxw8B7jmU8UqSRkMrM8aIOAK4GngFcHpm3lDvvwR4HvBa\nYA3wIeB1mfn3B/hcY8B1wAWZ2dvPc5wxSpLmdWrGGBFPBr4IHLvP/p8Cfgt4U2belJmfpDojXNd4\nzp9GxOaI+ES9/UTgeuDC/RVFSZIWoo1W6vOAfwGeAzSr9dOA5cDnG/s+BzwjIgIgMy/MzFMz8+UR\nsQb4OHBeZn5qaUJvxzD0882hG8yhG0rPofT4+zl8qb9gZl4297iud3MeBXw/M3/U2LeDqlgeXT9u\nehvwMOCiunDelpm/fkiCliSNjFbvY4yI+4DTMvOGiDgb2JiZaxrHjwW2AMdm5sxBfB1njJKkeQea\nMS75GeMB3A0csc++ue3/O9hPfs455/DYxz4WgFWrVnHiiScyPj4O/Lgt4Lbbbrvt9nBuzz2empqi\nny6dMT4H+CxwZGbuqY+PA58CVmTmfQfxdYo+Y+z1evPf5FKZQzeYQzeUnkPp8UPHrko9gJuAHwG/\n2Nj3XOArB1MUh8FNN93UdggHzRy6wRy6ofQcSo+/n860UjPzroi4Crg0Is6luhjnAuC8diNr386d\nO9sO4aCZQzeYQzeUnkPp8ffTdmHct7/5B8ClVLdz7AYmMvMfljwqSdLIarUwZuayfbbvAs6tPx5U\nExMTjI+PF9kXH2RY3HXm0A3m0A2l51By/L1e734X5DyQkVl2qu0YJEndsr+Lb0aiMEqSNKguXZUq\nSVLrLIySJDVYGAvwQGtXliIiHhcRn6jX2JyJiPdExPK241qIiDguIj4dEXdGxGREvLntmBYrIq6I\niBvajmOhIuJVEXFfROxt/HtN23EtREQcHhGbIuL2+uPSiHhI23ENKiJe+wDfg7l/H9N2fA+mtm/X\nUB+NtSvXth3LQtW/9NcCtwDPBo4BPkB1m86BFqHujIg4HPgnqluIfht4EnB1RPx3Zl7danALFBG/\nTHVfcK/lUBbjeOAa4Hf48ao8d7cXzqK8B3g58LJ6+2rgf4ALW4toYT5C9bsw5zDgH4Etmbm1nZAO\nDQtjh9VrV3647TgOwjOBxwFPr2/F+XZEXAj8BYUURuBngS8B6zLzHuDWiLieavm0Ygpjvd7pX1Mt\n5VaitcDNmXl724EsRkT8NPAG4CWZ+cV633rg1a0GtgD1z/9tc9sRsQ54DFBcJ6sfW6ndtr+1K0vx\nLaoXgrv22b+qjWAWIzOnM/Os+kWBiDgZOIVqgeySvAvYDHym7UAWaS3Vz1Opfgn438ycb2Nn5lWZ\n+aIWY1q0iFgB/AnVIvG72o7nwWZh7LDMvCwz35yZpbWMAMjMO5ovBPW6meuAT7cX1eJFxFaqN7r/\nAlDMOzLVb9B/JlDkbLRuyT8eeFlEfCcitkTExsJm1Y8HpiPirIj4ekRMRcS7S5ox7uMNVK3sK9sO\n5FCwlaql9JfA04CT2g5kkV4OPBq4jCqXN7UbTn918fgb4PzM3LXP4uCl+HlgGdXbRP4KVZG5BFgB\n/F6LcS3Ew6nGCuuA1wErqX6OllG9FWZpXg9ckpl72w7kULAwaklExHup/so8MzP/q+14FiMzvwp8\nNSIuAP4uIt48t0Rah60Hvp2ZRV3B2ZSZ34iIozJzd73rlog4DPhwRJxfyOo7e6iK42sycwqgvrr5\nKgorjBHxdKoi/6G2YzlULIw6pOr26d8CZwG/lpnXthzSgkTEo6kuHvpkY/c3gOVUf/V/v5XABncW\n8DMRcWe9vRxYFhG7M3Nli3EtSKMozvkm8BBgDNix9BEt2DZgz1xRrH0LeGhEjBV2UdGLgC9l5vfa\nDuRQccaoQ20T8CrglZn58baDWYQnA9dExOrGvpOA2zOz60URqgu4nkLVwn4acAXw7/XjIkTEKyPi\ntvrWmTm/AOzMzBKKIsC/AodHxPGNfccDd1LdslGSZ1PuRVwD8YxRh0xEPBs4H/gjqhbkMXPHCnpB\n+wzwn9StU+AJwEbgHa1GNaDMnG1uR8QPgLsyc7KlkBajR9WKvDwiNgJPBC6qP4qQmVsi4hPAByLi\nDcDDqH6OLi+kFdz0FKp7GoeWZ4zlKPHd3s+kinsjVStpG7Ad2FbPiDqvniG+lOqF+YvA+4FNmflX\nrQY2QjLzB8ALgZ8DvkJ10cqlmfnnrQa2cGcD/0F1C9Y1VFc2/3GrES3O0XR/hHBQXF1DkqSGIv5q\nlyRpqVgYJUlqsDBKktRgYZQkqcHCKElSg4VRkqQGC6MkSQ0WRqkgEbE5It6+yP/23og45cGOSRo2\nFkZJkhosjJIkNVgYpQJFxGsj4saIuLBeeWJnRFy8z3PeFhHfq4+/bp9jyyPi4vrYHRHx0Yg4uj52\nbkTcExFPrLePjYgfRsRvLF2GUnssjFK5nkm1LNbJwO8C6yLihQAR8Xrg94HzgOcDr+H+v+8bgWcB\nLwFOAQK4FiAzPwDcCFxSP/dy4IbM/OAhzkfqBN9EXCpIRGymKlrfBa4EVmXmD+tjXwE+lpnviIh/\nA67NzLfXx54AfBsYp1qP8QfAszLz5vr4kcAdwAsy8/MR8XiqlSA+BrwYOH6YF6aVmjxjlMp1x1xR\nrO2mWtUeYC1w89yBzNwC7Ko3HwcsB26MiDsj4k7gNuAIqrUOyczvAu8CXg281aKoUeJCxVK5fvQA\n+2I/jwHurf+d+70/haqYNt3eeHwi1TqUp1KtgSiNBM8YpeH0deAZcxsRsQZYXW9+F9gLjGXmrZl5\nK9UZ4yaqxYCJiJdRzR9fCrwiIs5YwtilVlkYpeF0CdXFOL8aEcdTzSP3AtTt1yuA90XEqRHxJOCD\nwAnAdyLi4cD7gI2Z+Wng3cD7I2JFG4lIS83CKJXlQFfLzR/LzA8DbwXeC3wO6AHbG8+9APhn4CPA\nl4CHAqdn5j3AO4G7gYvq576Tqm37Zw9KBlLHeVWqJEkNnjFKktRgYZQkqcHCKElSg4VRkqQGC6Mk\nSQ0WRkmSGiyMkiQ1WBglSWqwMEqS1PD/RYhsXRVX64IAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x103d2c210>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1106ef6d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "ename": "AttributeError",
     "evalue": "Subspaces instance has no attribute 'eigenvectors'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-6-d6fe77af69a7>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m     12\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     13\u001b[0m \u001b[0;31m#Plot eigenvectors, sufficient summaries\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 14\u001b[0;31m \u001b[0mac\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mutils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplotters\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0meigenvectors\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mss\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0meigenvectors\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;36m4\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0min_labels\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0min_labels\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     15\u001b[0m \u001b[0mac\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mutils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplotters\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0meigenvectors\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mss\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0meigenvectors\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m4\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0min_labels\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0min_labels\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     16\u001b[0m \u001b[0mac\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mutils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplotters\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msufficient_summary\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mAttributeError\u001b[0m: Subspaces instance has no attribute 'eigenvectors'"
     ]
    }
   ],
   "source": [
    "#Component labels\n",
    "in_labels = [r't1', r't2', r't3', r't4', r'L1', r'L2', r'L3', r'L4']\n",
    "\n",
    "#plot eigenvalues, subspace errors\n",
    "ac.utils.plotters.eigenvalues(ss.eigenvals[:7], ss.e_br[:7,:])\n",
    "ac.utils.plotters.subspace_errors(ss.sub_br[:6,:])\n",
    "\n",
    "#manually make the subspace 2D for the eigenvector and 2D summary plots\n",
    "ss.partition(2)\n",
    "#Compute the active variable values\n",
    "y = XX.dot(ss.W1)\n",
    "\n",
    "#Plot eigenvectors, sufficient summaries\n",
    "ac.utils.plotters.eigenvectors(ss.eigenvecs[:,:4], in_labels=in_labels)\n",
    "ac.utils.plotters.eigenvectors(ss.eigenvecs[:,4:], in_labels=in_labels)\n",
    "ac.utils.plotters.sufficient_summary(y, f)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see very little decay in the eigenvalues, so we would not expect a significant active subspace. This can be seen in the lack of trend in both the 1D and 2D sufficient summary plots. Active subspace analysis is thus not suited for this function; other dimension reduction schemes would need to be tried if this was a necessary step in a study's goals."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
